import { request } from '@/utils/request.js'

/**
 * 获取菜单列表
 * @param {*} params 
 * @returns 
 */
export function getmenu(params) {
  return request({
    url: '/api/menu/getMenuList',
    method: 'get',
    params,
  })
}

/**
 * 菜单对象数据结构
 * @typedef {Object} Menu
 * @property {number} id - 菜单ID
 * @property {string} menuName - 菜单名称
 * @property {string} menuCode - 菜单编码（唯一标识，创建后不可修改）
 * @property {number} parentId - 父级菜单ID
 * @property {number} [orderNum] - 显示顺序（数字越小越靠前）
 * @property {string} path - 路由路径
 * @property {string} component - 组件路径
 * @property {string} menuType - 菜单类型（M：目录，F：菜单，O：接口）
 * @property {string} [visible] - 显示状态（0：显示，1：隐藏）
 * @property {string} [icon] - 菜单图标
 * @property {string} [keepAlive] - 是否缓存（0：是，1：否）
 * @property {string} [requiresAuth] - 是否需要认证（0：是，1：否）
 * @property {string} [permission] - 权限标识符
 */

/**
 * 添加菜单
 * @param {Menu} data - 菜单信息对象
 * @returns {Promise} - 返回添加结果的Promise对象
 */
export function addmenu(data) {
  return request({
    url: '/api/menu/addMenu',
    method: 'post',
    data
  })
}


/**
 * 删除菜单
 * @param {integer} menuId 菜单ID
 */
export function delmenu(menuId) {
  return request({
    url: `/api/menu/${menuId}/delete`,
    method: 'delete',
  })
}

/**
 * 修改菜单
 * @param {Menu} data - 菜单信息对象
 * @returns {Promise} - 返回添加结果的Promise对象
 */
export function updatamenu(data) {
  return request({
    url: `/api/menu/update`,
    method: 'PUT',
    data,
  })
}


